package com.java.string.String;

public class API {
    public static void main(String[] args) {
        // equals：判断字符串内容是否相同，区分大小写
        System.out.println(new String("abc").equals(new String("abc"))); // true
        System.out.println(new String("abc").equals(new String("ABC"))); // false
        System.out.println(new String("abc") == new String("abc")); // false
        
        // equalsIgnoreCase：判断字符串内容是否相同，忽略大小写
        System.out.println(new String("abc").equalsIgnoreCase(new String("abc"))); // true
        System.out.println(new String("abc").equalsIgnoreCase(new String("ABC"))); // true
        
        // startsWith：判断字符串是否以xxx开头，区分大小写
        System.out.println("abc".startsWith("ab")); // true
        System.out.println("abc".startsWith("AB")); // false
        System.out.println("abc".startsWith("bc", 1)); // true
        
        // endsWith：判断字符串是否以xxx结尾，区分大小写
        System.out.println("abc".endsWith("bc")); // true
        System.out.println("abc".endsWith("BC")); // false
        
        // contains：判断字符串是否包含xxx，区分大小写
        System.out.println("abc".contains("b")); // true
        System.out.println("abc".contains("B")); // false
        
        // isEmpty：判断字符串长度是否为0
        System.out.println("".isEmpty()); // true
        System.out.println(" ".isEmpty()); // false
        
        // length：获取字符串长度
        System.out.println("".length()); // 0
        System.out.println("abc".length()); // 3
        
        // indexOf：从前往后获取指定字符或字符串第一次出现的索引位置
        System.out.println("abcabc".indexOf('a')); // 0
        System.out.println("abcabc".indexOf('a', 0)); // 0
        System.out.println("abcabc".indexOf('a', 1)); // 3
        System.out.println("abcabc".indexOf("bc")); // 1
        System.out.println("abcabc".indexOf("bc", 1)); // 1
        System.out.println("abcabc".indexOf("bc", 2)); // 4
        
        // lastIndexOf：从后往前获取指定字符或字符串第一次出现的索引位置
        System.out.println("abcabc".lastIndexOf('a')); // 3
        System.out.println("abcabc".lastIndexOf('a', 3)); // 3
        System.out.println("abcabc".lastIndexOf('a', 2)); // 0
        System.out.println("abcabc".lastIndexOf("bc")); // 4
        System.out.println("abcabc".lastIndexOf("bc", 4)); // 4
        System.out.println("abcabc".lastIndexOf("bc", 3)); // 1
        
        // charAt：获取指定索引位置的字符
        System.out.println("abc".charAt(0)); // a
        // System.out.println("abc".charAt(3)); // Exception: String index out of range
        
        // toLowerCase：获取全小写字符串
        System.out.println("AbC1".toLowerCase()); // abc1
        
        // toUpperCase：获取全大写字符串
        System.out.println("aBc1".toUpperCase()); // ABC1
        
        // concat：获取原字符串与xxx拼接后的字符串
        System.out.println("abc".concat("ABC")); // abcABC
        
        // substring：获取截取原字符串后的字符串，参数索引包左不包右
        System.out.println("0123456789".substring(3)); // 3456789
        System.out.println("0123456789".substring(3, 7)); // 3456
        
        // replace & replaceAll：获取替换原字符串所有xxx后的字符串
        System.out.println("a_b_c_d".replace('_', '&')); // a&b&c&d
        System.out.println("a_b_c_d".replaceAll("_", "&")); // a&b&c&d
        
        // replaceFirst：获取替换原字符串第一个xxx后的字符串
        System.out.println("a_b_c_d".replaceFirst("_", "&")); // a&b_c_d
        
        // trim：获取去除原字符串两端空格后的字符串
        System.out.println("   a b c   ".trim()); // a b c
        
        // compareTo：获取原字符串与xxx比较后的结果。若长度与内容相等则结果为0，若最短长度内内容不等则结果为ASCII差值，若最短长度内内容相等则结果为长度差值。结果为正数则调用字符串更大，结果为负数则参数字符串更大
        System.out.println("abc".compareTo("abc")); // 0
        System.out.println("abc".compareTo("ab1")); // 50
        System.out.println("ab1".compareTo("abc")); // -50
        System.out.println("abc".compareTo("abcde")); // -2
        
        // getBytes：获取字符串的字节数组
        // toCharArray：获取字符串的字符数组
        // valueOf：将xxx转为字符串类型
    }
}
